package cn.jbolt.ec.retailer;

import cn.jbolt._admin.permission.CheckPermission;
import cn.jbolt._admin.permission.PermissionKey;
import cn.jbolt.base.JBoltBaseController;
import cn.jbolt.common.bean.OptionBean;
import cn.jbolt.common.config.JBoltUploadFolder;
import cn.jbolt.common.model.BecRetailer;
import com.jfinal.aop.Inject;
import com.jfinal.kit.Kv;
import com.jfinal.upload.UploadFile;

import java.util.ArrayList;
import java.util.List;

@CheckPermission(PermissionKey.RETAILER_ADMIN)
public class EcRetailerAuthController extends JBoltBaseController {

    @Inject
    RetailerService service;

    @Inject
    RetailerTypeService typeService;


    /**
     * ***************************************************
     * 下面为管理端方法，主要为更新数据
     * @author heqingyu
     * *******************************************
     */

    /**
     *  加以  权限
     *  后台管理主页面
     */
    @CheckPermission(PermissionKey.RETAILER_INDEX)
    public void index(){
        set("pageData",service.get_retailer_page(getPageNumber(),getPageSize(),getKeywords(),getBoolean("delete_status",false),getInt("retailer_status")));
        set("deleteCount",service.get_delete_count());
        keepPara();

        render("index.html");
    }


    /**
     * 加以 权限
     * 添加商品基本信息
     */
    @CheckPermission(PermissionKey.RETAILER_ADD)
    public void add_basic(){
        render("add_basic_form.html");
    }


    /**
     *  加以 权限
     * 保存商品信息
     */
    public void save_basic(){
        renderJson(service.save_basic(getModel(BecRetailer.class, "retailer"),get("open_time"),get("close_time")));

    }


    /**
     *  加以  权限
     * 编辑 商家基本信息
     */
    @CheckPermission(PermissionKey.RETAILER_MODIFY_BASIC)
    public void modify_basic(){
        set("retailer",service.findById(getInt(0)));
        render("modify_basic_form.html");
    }

    /**
     * 更新商家基础信息
     */
    public void update_basic(){
        renderJson(service.update_basic(getModel(BecRetailer.class, "retailer"),getInt("retailerTypeId"),get("open_time"),get("close_time")));

    }


    /**
     * 加以 权限
     * 编辑 商家财务信息
     */
    @CheckPermission(PermissionKey.RETAILER_MODIFY_FINANCE)
    public void modify_finance(){
        set("retailer",service.findById(getInt(0)));
        render("modify_finance_form.html");
    }

    /**
     * 更新商家财务信息
     */
    public void update_finance(){
        renderJson(service.update_finance(getModel(BecRetailer.class, "retailer")));

    }



    /**
     *  加以权限
     * 编辑 商家 营业执照
     */
    @CheckPermission(PermissionKey.RETAILER_MODIFY_LICENSE_IMAGE)
    public void modify_license_image(){
        set("retailer",service.findById(getInt(0)));
        render("modify_license_image_form.html");
    }



    /**
     * 获取上传图片
     */
    public void select_license_image(){
        //上传到今天的文件夹下
        String todayFolder= JBoltUploadFolder.todayFolder();
        String uploadPath="/"+todayFolder;
        UploadFile file=getFile("file",uploadPath);
        String key= file.getUploadPath()+"/"+file.getFileName();
        System.out.println(key);
        if (key==null){
            renderJsonFail("操作失败");
        }
        renderJsonData(key);
    }

    /**
     * 上传图片
     */
    public void update_license_image(){
        renderJson(service.update_license_image(getModel(BecRetailer.class,"retailer"),getPara("imgUploadDemo")));
    }


    /**
     * 商家类型表数作为选项数据源
     */
    public void type_options() {
        renderJsonData(typeService.getCommonList("id,name",Kv.by("is_del",false)));
    }


    /**
     * 通过 商家请求
     */
    public void pass_retailer(){
        renderJson(service.set_retailer_status(getInt(0),0));
    }

    /**
     * 驳回 商家请求
     */
    public void turn_down_retailer(){
        renderJson(service.set_retailer_status(getInt(0),1));

    }

    /**
     * 删除 商家
     */
    public void delete_retailer(){
        renderJson(service.set_retailer_status(getInt(0),1));
    }

    /**
     * 还原 商家
     */
    public void restore_retailer(){
        renderJson(service.set_retailer_status(getInt(0),2));
    }



    /**
     * 更新商家地理信息
     */
    @CheckPermission(PermissionKey.RETAILER_LOCATION_MODIFY)
    public void modify_location(){
        set("retailer",service.findById(getInt(0)));
        render("modify_location_form.html");
    }


    public void update_location(){
        renderJson(service.update(getModel(BecRetailer.class,"retailer")));
    }


    /**
     * select 编辑中 update 的下拉数据源
     */
    public void get_retailer_status(){
        List<OptionBean> options=new ArrayList<OptionBean>();
        options.add(new OptionBean("审核通过",0));
        options.add(new OptionBean("待审核",2));
        renderJsonData(options);

    }





    /**
     * 商家表/员工表    作为选项数据源
     */
    @CheckPermission(PermissionKey.STAFF_INDEX)
    public void options() {
        renderJsonData(service.getCommonList("id,name",Kv.by("status",0)));
    }

}
